package io.terminus.spzx.manager.mapper;

import io.terminus.spzx.model.dto.system.AssignMenuDto;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @Author lichunlong lcl253137@alibaba-inc.com
 * @Desc 系统角色与菜单绑定Mapper
 * @Date 2024-09-03
 */
@Mapper
public interface SysRoleMenuMapper {

    /**
     * 根据角色ID查询绑定的菜单列表
     *
     * @param roleId 角色ID
     * @return 绑定的菜单列表
     */
    List<Long> findSysRoleMenuByRoleId(Long roleId);

    /**
     * 根据角色ID删除绑定的菜单ID列表
     *
     * @param roleId 角色ID
     */
    void deleteByRoleId(Long roleId);

    /**
     * 保存角色绑定的菜单
     *
     * @param assignMenuDto 角色绑定的菜单
     */
    void doAssign(AssignMenuDto assignMenuDto);

    /**
     * 打开父菜单半开状态
     *
     * @param menuId 角色ID
     */
    void updateSysRoleMenuIsHalf(Long menuId);
}
